package com.itheima.d7_methodreference;

import java.util.Arrays;
import java.util.Comparator;

/**
 * 特定类的方法引用
 */
public class Demo3 {
    public static void main(String[] args) {
        //需求：有一个字符串数据，里有一些人的名字，英文名称，请按照名字的升序排序
        String[] names = {"Tom", "Jerry", "Bobi", "曹操" , "Mike", "angela",  "Dlei", "Jack", "Rose", "Andy", "caocao"};
        //输出一下看看什么样子
        System.out.println(Arrays.toString(names));
        System.out.println("---------------------------------------");
        //排序
        //Arrays.sort(names);
        //要求：忽略字母的大小写进行升序排序
        //匿名内部类
       Arrays.sort(names, new Comparator<String>() {
           @Override
           public int compare(String o1, String o2) {
               return o1.compareToIgnoreCase(o2);
           }
       });
        //Lambda表达式
        Arrays.sort(names, (String o1, String o2)-> o1.compareToIgnoreCase(o2));
        //⬇⬇
        Arrays.sort(names, (o1,o2)-> o1.compareToIgnoreCase(o2));
        //⬇⬇


        //特定类型方法的引用 也是用类的名称+方法名(方法名字是java写好的)
        Arrays.sort(names,String::compareToIgnoreCase);//本质上还是匿名内部类的子类或实现类对象 用的函数式接口是Comparator



        System.out.println(Arrays.toString(names));
    }
}
